package models

import (
	"gorm.io/gorm"
)

// sysContent 对应数据库表 sys_lang
/*
  `id` int unsigned NOT NULL AUTO_INCREMENT,
  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '',
  `code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '',
  `lang_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'en',
  `is_default` tinyint unsigned NOT NULL DEFAULT '0',
  `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1-启用 2-禁用',
  `app_id` int(11) DEFAULT '0' COMMENT '数据归属',
*/
type SysLang struct {
	gorm.Model
	ID        uint   `gorm:"primaryKey;autoIncrement;comment:主键，自增ID"`
	Title     string `gorm:"not null;default:'';comment:语言名称"`
	Name      string `gorm:"not null;default:'';comment:语言标识"`
	Code      string `gorm:"not null;default:'';comment:语言代码"`
	LangCode  string `gorm:"not null;default:'';comment:翻译代码"`
	IsDefault uint8  `gorm:"not null;default:0;comment:是否默认语言"`
	Status    uint8  `gorm:"not null;default:1;comment:0状态：2禁用，1正常"`
	AppID     int    `gorm:"default:0;comment:数据归属"`
	CreatedAt int64  `gorm:"autoCreateTime;comment:创建时间戳"` // 修改为 int64 类型
	UpdatedAt int64  `gorm:"autoUpdateTime;comment:更新时间戳"` // 修改为 int64 类型
}

type SysLangList struct {
	ID        uint   `json:"id"`
	Title     string `json:"title"`
	Name      string `json:"name"`
	Code      string `json:"code"`
	LangCode  string `json:"lang_code"`
	IsDefault uint8  `json:"is_default"`
	Status    uint8  `json:"status"`
	AppID     int    `json:"app_id"`
	CreatedAt string `json:"created_at"`
	UpdatedAt string `json:"updated_at"`
}

type SysLangCreate struct {
	Title     string `json:"title"`
	Name      string `json:"name"`
	Code      string `json:"code"`
	LangCode  string `json:"lang_code"`
	IsDefault uint8  `json:"is_default"`
	Status    uint8  `json:"status"`
	AppID     int    `json:"app_id"`
}

type SysLangUpdate struct {
	ID        uint   `json:"id"`
	Title     string `json:"title"`
	Name      string `json:"name"`
	Code      string `json:"code"`
	LangCode  string `json:"lang_code"`
	IsDefault uint8  `json:"is_default"`
	Status    uint8  `json:"status"`
	AppID     int    `json:"app_id"`
}

// TableName 设置表名为 sys_lang
func (SysLang) TableName() string {
	return "sys_lang"
}
